/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package view;

import controller.ControllerAgendarConsulta;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import javax.swing.table.AbstractTableModel;
import model.AgendarConsulta;

/**
 *
 * @author Root
 */
public class TableGuia extends AbstractTableModel {

    private static List<AgendarConsulta> linhas;
    private final List<String> colunas = Arrays.asList("id", "Data", "Hora", "Descricao Consulta", "Paciente", "Endereco Paciente", "Dentista");

    @Override
    public int getRowCount() {
        return linhas.size();
    }

    @Override
    public int getColumnCount() {
        return colunas.size();
    }

    @Override
    public String getColumnName(int column) {
        return colunas.get(column);
    }

    @Override
    public Object getValueAt(int rowIndex, int columnIndex) {
        AgendarConsulta a = linhas.get(rowIndex);
        switch (columnIndex) {
            case 0:
                return a.getId();
            case 1:
                return a.getDataConsulta();
            case 2:
                return a.getHora();
            case 3:
                return a.getDescricao();
            case 4:
                return a.getPaciente();
            case 5:
                return a.getPaciente().getEndereco();
            case 6:
                return a.getDentista();

            default:
                throw new IndexOutOfBoundsException("ERRO: columnIndex out of  bounds");
        }
    }

    public List<AgendarConsulta> fillingRows() {
        ControllerAgendarConsulta ce = new ControllerAgendarConsulta();
        linhas = new ArrayList();
        linhas = ce.listarTodos();
        return linhas;

    }

    public List<AgendarConsulta> consultarFiltro(String nome, Date data) {
        ControllerAgendarConsulta ce = new ControllerAgendarConsulta();
        linhas = new ArrayList();
        linhas = ce.consultaComFiltro(nome, data);
        return linhas;

    }

}
